home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1994 / MacHack 1994.toast / MacHack™94 / Talks & Papers / Timothy Knox / Help / Help Files / Miscellaneous / Church Numerals next >
Text File  |  1994-06-24  |  871b  |  44 lines

  1. {•••••••••• The Church Numerals in Help ••••••••••••}
  2.  
  3. (define zero (lambda(f) (lambda(x) x)))
  4.  
  5. ;the successor function
  6.  
  7. (define suc 
  8.   (lambda(n)
  9.          (lambda(f)
  10.                 (lambda(x) ((n f)(f x))))))
  11.  
  12. ;some numbers
  13.  
  14. (define one (suc zero))
  15. (define two (suc un))
  16. (define three (suc deux))
  17. (define four (suc three))
  18.  
  19. ; the usual functions
  20.  
  21. (define plus 
  22.   (lambda(n1)
  23.          (lambda(n2)
  24.                 (lambda(f)
  25.                        (lambda(x)
  26.                               ((n1 f) ((n2 f) x)))))))
  27.  
  28. (define mult
  29.   (lambda(n1)
  30.          (lambda(n2)
  31.                 (lambda(f)
  32.                        (lambda(x)
  33.                               ((n1 (n2 f)) x))))))
  34.  
  35. (define exp
  36.   (lambda(n1)
  37.          (lambda(n2)
  38.                 (lambda(f)
  39.                        (lambda(x)
  40.                               (((n2 n1) f) x))))))
  41.  
  42. ; test
  43. ((((exp deux) trois) 1+) 0)
  44.